3.2 业务角色
业务角色是对应用角色的组合,主要是在门户进行跨微服务使用。可以将多个应用角色组合成1个业务角色,方便后续角色的分配和使用,提高授权效率。
平台建议用户使用业务角色来给组织和用户授权。
1.实现原理
(1)运行时设置
由于业务角色是跨微服务使用的,因此业务角色不能在开发时设置,只能在运行时设置。
开发的应用需要先发布到运行时环境,并注册到门户中,再从门户的业务角色设置页面中对业务角色进行维护。如果应用不发布,在门户是看不到应用创建的应用角色的。
(2)数据库表写入
在门户的业务角色管理页面新建业务角色后,会在门户的数据库表role中插入1条数据。name为用户填写的角色名称,type为biz(指业务角色)。
如果该业务角色分配了应用角色,会把关联关系写到parentrole_codes和parent_role_names字段,如果包含多个应用角色则用逗号分割,比如销售部门经理这个业务角色,包含销售订单\销售部门经理角色,信息发布_信息管理员角色这2个应用角色。例如:
(3)权限包含关系
业务角色是对应用角色的组合,因此会包含所关联的应用角色的所有权限。比如以下例子:
业务角色 | 包含的权限 | 关联的应用角色 | 应用角色包含的权限 |
---|---|---|---|
项目经理 | 信息表CRUD 查询数据,限制查看部门员工的数据 |
信息发布_信息管理员角色 | 信息表CRUD |
销售订单_销售部门经理角色 | 查询数据,限制查看部门员工的数据 | ||
公司领导 | 信息表CRUD 查询数据,限制查看公司员工的数据 |
信息发布_信息管理员角色 | 信息表CRUD |
销售订单_公司领导角色 | 查询数据,限制查看公司员工的数据 |
2.实现效果
以项目经理为例,这个角色需要同时具备多个微服务的操作权限,比如即可以对信息发布应用的信息表进行管理,也可以对销售订单应用的部门订单数据进行查询,因此可以给项目经理分配多个应用角色来实现。主要操作如下:
- 打开正式门户的业务角色管理页面,点击新建业务角色
- 输入角色名称
- 选择新建的项目经理业务角色,在右侧的功能列表中点击分配应用角色
- 在弹出对话框中,选择需要关联的应用角色
配置好业务角色后,再分配给对应用户,该用户就能拥有该业务角色所包含的应用角色的全部权限。